﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sistema_Totem.Logica.Clases;
using System.Data;

namespace Sistema_Totem.Vista.Usuarios
{
    public partial class ModificarUsuario : System.Web.UI.Page
    {
        int IdUsuario = 0;
        List<Rol> listaRol = new List<Rol>();
        protected void Page_Load(object sender, EventArgs e)
        {
            //if (Session["tipo_usuario"].ToString() != "Administrador")
            //{
            //    Response.Redirect("Login1.aspx");
            //}

            if (!IsPostBack)
            {
                this.CargarLabel();
            }
            this.CargarRolUsuario();
        }

        public void CargarLabel()
        {
            Usuario usuario = new Usuario();
            usuario = (Usuario)Session["usuario"];
            // seteamos cada valor pasado por parametros de la vista anteorior
            this.TextNombre.Text = usuario.Nombre;
            this.TextNick.Text = usuario.Nickname;
            this.TextClave.Text = usuario.Clave;
            this.TextTelefono.Text = usuario.Telefono;
            this.TextCorreo.Text = usuario.Correo;
            this.TextRol.Text = usuario.Rol.Nombre;
            Session["id"] = usuario.Id;
        }
        public void Actualizar(object sender, EventArgs e)
        {
            Usuario usuario  = new Usuario();
            usuario.Id = (int)Session["id"];
            usuario.Nombre = this.TextNombre.Text;
            usuario.Nickname = this.TextNick.Text;
            usuario.Clave = this.TextClave.Text;
            usuario.Telefono = this.TextTelefono.Text;
            usuario.Correo = this.TextCorreo.Text;
            String nombreRol = this.TextRol.Text;
            if (nombreRol != this.ComboRol.SelectedItem.Text)
            {
                usuario.Rol.Nombre =  this.ComboRol.SelectedItem.Text;            
            }
            else
                usuario.Rol.Nombre = this.TextRol.Text;
            
            // buscamos el ID del rol
            usuario.Rol.Id = BuscarSelecionRol(usuario.Rol.Nombre);
            // le pasamos el objeto del tipo usuario al metodo Modificar
           int idRetornado = usuario.ModificarUsuario(usuario);
           if (idRetornado != 0)
               Mensaje(1);
           else
               Mensaje(0);
            // invocamos al metodo InhabilitarAtributos
            InhabilitarAtributos();
        }
        // cargamos el comboBox por defecto
        public void CargarRolUsuario()
        {
            Rol rol = new Rol();
            listaRol = rol.ListaRoles();
            foreach (Rol roles in listaRol)
            {
                if ((roles.TipoRol == "Sistema") || (roles.TipoRol == "sistema"))
                {
                    this.ComboRol.Items.Add(roles.Nombre);
                }
            }

        }

        public int BuscarSelecionRol(String nombreRol)
        {
            int idRol = 0;
            foreach (Rol roles in listaRol)
            {
                if (roles.Nombre == nombreRol)
                    idRol = roles.Id;
            }

            return idRol;
        }

        public void InhabilitarAtributos()
        {
            this.TextNombre.Enabled= false;
            this.TextNick.Enabled = false;
            this.TextClave.Enabled = false;
            this.TextTelefono.Enabled = false;
            this.TextCorreo.Enabled = false;
            this.TextRol.Enabled = false;
            this.ComboRol.Enabled = false;
        }
        public void Mensaje(int valorMensaje)
        {
            if (valorMensaje == 1)
            {
                MensajeDeTransaccion.Text = "El Usuario se Modifico con exito";

                MensajeDeTransaccion.Visible = true;

            }
            else
            {
                if (valorMensaje == 0)
                {
                    MensajeDeTransaccion.Text = "Operacion Fallida";

                    MensajeDeTransaccion.Visible = true;
                }
            }
        }
        public void Regresar(object sender, EventArgs e)
        {
            // Redireccionamos a la pagina del consultarUsuario
            Response.Redirect("../Usuarios/ListarUsuariosModificar.aspx");
        }
    }
}